interface EnumLength {
    [key: string]: number;
}
export const GTEnumLength: EnumLength = {
    serialNumber: 32, // 序列号
    username: 32, // 用户名
    name: 32, // 姓名
    password: 20, // 口令
    email: 64, // 邮箱
    phone: 11, // 联系电话
    remark: 100, // 备注
    code: 4, // 验证码
    certCountry: 32, // 证书-国家
    certProvince: 32, // 证书-省份
    certCity: 32, // 证书-城市
    certOrganization: 32, // 证书-组织
    certOrganizationalUnit: 32, // 证书-组织单位
    ipv4: 15, // IPv4地址
    ipv6: 39, // IPv6地址
    port: 5, // 端口
    logs: 5, // 日志
    mac: 17, // MAC地址
    subnetMask: 15, // 子网掩码
    subnetPrefix: 3, // 子网前缀
    accessPassword: 32, // 私钥访问控制码
    genericInput: 20, // 一般的输入框
    keywordSearch: 50, // 关键字搜索
}

/**
 * @param key GTEnumLength中的key
 * @param customLength 自定义长度
 * @description 如果key为string类型,获取GTEnumLength中的key对应的长度,如果对应的key不存在,则返回customLength;如果key为number类型,直接返回key
 */
export const GTGetLength = (key: string | number, customLength?: number) => {
    const keyFlag = typeof key === 'string';
    const lengthFlag = typeof customLength === 'number';
    const target = GTEnumLength[key as string];
    if (keyFlag) {
        if (target) {
            return target
        }
        if (!target && lengthFlag) {
            return customLength
        }
        throw new Error(`key ${key} is not exist and length is error`)
    } else {
        return key
    }
}
export default {
    GTEnumLength,
    GTGetLength
}